package br.com.future.dao.interfaces;


public abstract class DAOFactory {
	
	public static final byte ORACLE = 1;
	
	private static DAOFactory oracleDAOFactory;
	
	public static DAOFactory getDAOFactory(byte factory){
		
		switch (factory) {
		case ORACLE:
			if (oracleDAOFactory == null){
				oracleDAOFactory = new OracleDAOFactory();
			}
			return oracleDAOFactory;
			
		default:
			return null;
		}
		
	}
	
	public abstract AdvogadoDAOI getAdvogadoDAO();
	public abstract BairroDAOI getBairroDAO();
	public abstract BloqueioDesbloqueioDAOI getBloqueioDesbloqueioDAO();
	public abstract CidadeDAOI getCidadeDAO();
	public abstract ClienteDAOI getClienteDAO();
	public abstract DespesaDAOI getDespesaDAO();
	public abstract EnderecoDAOI getEnderecoDAO();
	public abstract EstadoDAOI getEstadoDAO();
	public abstract PessoaDAOI getPessoaDAO();
	public abstract TarefaDAOI getTarefaDAO();
	public abstract TelefoneDAOI getTelefoneDAO();
	public abstract TipoTelefoneDAOI getTipoTelefoneDAO();
	public abstract TituloDAOI getTituloDAO();
	public abstract ProcessoDAOI getProcessoDAO();
	public abstract TituloPagoDAOI getTituloPagoDAO();
	public abstract ForumDAOI getForumDAO();
	public abstract TipoDespesaDAOI getTipoDespesaDAO();
	public abstract TipoCausaDAOI getTipoCausaDAO();
	public abstract TipoCobrancaDAOI getTipoCobrancaDAO();
	public abstract RelatorioDAOI getRelatorioDAO();

	
}
